Skip to content
On this page

219. Contains Duplicate II share

Problem Statement

Given an integer array nums and an integer k, return true if there are two distinct indicesi and j in the array such that nums[i] == nums[j] and abs(i - j) <= k.

 

Example 1:

Input: nums = [1,2,3,1], k = 3
Output: true

Example 2:

Input: nums = [1,0,1,1], k = 1
Output: true

Example 3:

Input: nums = [1,2,3,1,2,3], k = 2
Output: false

 

Constraints:

  • 1 <= nums.length <= 105
  • -109 <= nums[i] <= 109
  • 0 <= k <= 105

Solution:

go
package main

func containsNearbyDuplicate(nums []int, k int) bool {
	if len(nums) <= 1 {
		return false
	}

	set := make(map[int]int)

	// iterate over the array
	for i, v := range nums {
		// check if the value is in the set
		if _, ok := set[v]; ok {
			// if the value is in the set,
			// check if the difference between the current index and the index of the value in the set
			// is less than or equal to k
			if i-set[v] <= k {
				return true
			}
		}
		// add the value to the set
		set[v] = i
	}

	return false
}

...


Released under the MIT License.